问题描述
我有这样一段代码
module.exports.AAA=function(){ let request= test(function(){//一段异步代码 }); let data;request.on(’data’,function(data){})request.on(’end’,function(){})}
上面的代码我怎么在调用AAA()的时候直接获取到data的值呢?如果是使用async和await怎么写呢?
问题解答
回答1:npm install bluebird --save
const Promise = require(’bluebird’);module.exports.AAA=function(){ return new Promise((resolve,reject)=>{let request= test(function(){//一段异步代码});request.on(’data’,resolve); request.on(’error’,reject);request.on(’end’,function(){}); });}
(async function(){ try{ const response = await AAA(); console.log(response); }catch(e){ console.error(e); }})();回答2:
foobar.js
’use strict’;function getDelayedData() { return new Promise(async resolve => {setTimeout(() => { resolve(+new Date); }, 1000); });}(async () => { let result = await getDelayedData(); console.log(’Got’, result); // missing error checking})();
这里有一段代码参考一下。
node --harmony-async-await foobar.js