第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

koa框架的yield問題

koa框架的yield問題

9玖月 2017-08-10 18:25:42
請(qǐng)導(dǎo)師或同學(xué)幫忙,解答一下,非常感謝!問題如下:?jiǎn)栴}1:為什么這里的yield下面?console.log()都能打印處理,這里并沒有調(diào)用next,按照es6的理解是需要手動(dòng)調(diào)用next才會(huì)往下執(zhí)行的???問題2:如果把?var content = yield util.parseXMLAsync(data);中yield去掉,打印處理則是一個(gè)Promise對(duì)象,如下所示:加上yield則打印出具體的內(nèi)容,如下圖所示:在app.js文件有代碼如下:'use strict'var Koa = require('koa');var path = require('path');var util = require('./libs/util.js');var wechar = require('./wechar/g.js');var config = require('./config.js');var weixin = require('./weixin.js'); var wechar_file = path.join(__dirname,'./config/wechat.txt');var app = new Koa();app.use(wechar(config.wechat, weixin.reply));app.listen(3000);**********************************************/wechar/g.js代碼如下:'use strict'var sha1 = require('sha1');var Wechat = require('./wechat.js');var getRawBody = require('raw-body');var util = require('./util.js');module.exports = function(opts, handler){ ? ?var wechat = new Wechat(opts); ? //在測(cè)試發(fā)送方式get/post時(shí),可以先屏蔽掉 ? ?return function *(next) { ? ? ? ?var that = this; ? ? ? ?var token = opts.token; ? ? ? ?var signature = this.query.signature; ? ? ? ?var nonce = this.query.nonce; ? ? ? ?var echostr = this.query.echostr; ? ? ? ?var timestamp = this.query.timestamp; ? ? ? ?var str = [token, timestamp, nonce].sort().join(''); ? ? ? ?var sha = sha1(str); ? ? ? ?if(this.method === 'GET'){ ? ? ? ? ? ?if (sha === signature && echostr) { ? ? ? ? ? ? ? ?this.body = echostr + ''; ? ? ? ? ? ? ? ?//console.log(echostr); ? ? ? ? ? ? ? ?return; ? ? ? ? ? ?} else { ? ? ? ? ? ? ? ?this.body = 'wrong --- echostr的驗(yàn)證出錯(cuò)!';? ? ? ? ? ? ? ? ?return; ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?else if (this.method === 'POST'){ ? ? ? ? ? ?if (sha !== signature){ ?? ? ? ? ? ? ? ? ?this.body = 'wrong --- signature不匹配?。?; ? ? ? ? ? ? ? ?return false; ? ? ? ? ? ?} ? ? ? ? ? ?var data = yield getRawBody(this.req, { ? ? ? ? ? ? ? ?length: this.length, ? ? ? ? ? ? ? ? ? ? ?limit: '1mb', ? ? ? ? ? ?? ? ? ? ? ? ? ? ?encoding: this.charset, ? ? ? ? ? ? ?}); ? ? ? ? ? ? ? ? ?var content = yield util.parseXMLAsync(data); ? ? ? ? ? ?console.log(content);?????????? var message = yield util.formatMessage(content.xml);????????? console.log(message);? ? ?? } ? ?}}*************************************************************************./util.js代碼如下:'use strict'var xml2js = require('xml2js'); ?? var Promise = require('bluebird'); var tpl = require('./tpl.js');//解析xml格式的數(shù)據(jù)exports.parseXMLAsync = function (xml) { ? ?return new Promise(function (resolve, reject) { ? ? ? ?xml2js.parseString(xml, {trim:true}, function (err,content) { ? ? ? ? ? ?if (err) reject(err); ? ? ? ? ? ?else resolve(content); ? ? ? ?}); ? ?});}
查看完整描述

1 回答

  • 1 回答
  • 1 關(guān)注
  • 1941 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)