ES6等待回调

时间:2018-06-25 11:22:14

标签: ecmascript-6 async-await

我要编写我的第一个node.js应用程序。我正在使用节点模块下载Google字体(https://www.npmjs.com/package/google-font-installer)。

示例代码基于

  

.on('成功',...

     

.on('错误',...

我不知道如何在等待时编写它。

那是软件包网站上的示例代码:

var GoogleFontlist = require('google-font-installer');

var fontList = new GoogleFontlist('VALID_API_KEY');

fontList.on('success', function(){
    this.searchFontByName('Source Sans Pro', function(err, filteredList) {
        if (err)
            throw err;
        filteredList.getFirst().download(['300', '400'], function(err, result){
            if (err)
                throw err;
            result.forEach(function(el, index){
                console.log('Variant %s of %s downloaded in %s', el.variant, el.family, el.path);
            })
        });
    })
})

fontList.on('error', function(err){
    throw err;
})

有人知道如何使它工作,我的应用程序正在等待使用async-await来下载字体,或者当我将其包装在类中的download方法中时可能会答应吗?我测试了许多不同的方法,但也找不到类似的示例。

1 个答案:

答案 0 :(得分:1)

基于回调的API应该被承诺,例如:

f1 - f2 > 0

然后可以将其与promise API或db.events.find({"$and":[{"difference":{"$subtract":{"data.count.f1": "data.count.f2"}}}, {"difference": {"$gt": 0}}]})一起使用:

const fontListPromise = new Promise((resolve, reject) => {
    const fontList = new GoogleFontlist('VALID_API_KEY');
    fontList.on('success', () => resolve(fontList));
    fontList.on('error', reject);
});

async..await也可以根据需要进行提示。