node.js - Cara menulis panggilan balik nodejs untuk menunggu
漂亮男人
漂亮男人 2017-05-17 09:57:09
0
2
734

Saya ada sekeping kod seperti ini


module.exports.AAA=function(){

    let request= test(function(){
        //一段异步代码
    });
    let data;
    
    request.on('data',function(data){})    
    request.on('end',function(){})
}

Bagaimana cara saya memanggil kod di atas AAA()的时候直接获取到data的值呢?如果是使用asyncawaitBagaimana cara saya menulisnya?

漂亮男人
漂亮男人

membalas semua(2)
过去多啦不再A梦
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);
  }
})();
曾经蜡笔没有小新

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
})();

Berikut adalah sekeping kod untuk rujukan.

nod --harmony-async-wait foobar.js

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan