如何使用node-bitly api进行序列调用

时间:2017-11-01 10:40:02

标签: javascript

我正在开发一个项目,我需要在文本中将url处理为短网址并发布更新后的文本。

工作环境是节点js。

下面的代码将url转换为short,但因为它是asyc我在进一步处理之前无法使用它。

var url='myurl';
console.log("before bitly");
Bitly.shorten({longUrl: url}, function(err, results) {
        // Do something with your new, shorter url...
           var obj = JSON.parse(results);
           shorturl= obj.data.url;
           console.log(shorturl);
        });
console.log("after bitly");

输出: 在bitly |之后| " SHORTURL *

Expeced输出: 在bitly之前" shorturl * | bitly

1 个答案:

答案 0 :(得分:0)

回调不是处理异步处理的最佳方式,最好使用promisesasync await

异步语法使其看起来像同步代码,但您需要最新版本的节点(V8)。关于mdn的例子没有多大意义,因为他们会调用异步函数,然后将结果作为一个承诺来处理,如果这是你如何使用它,你可以坚持承诺。

Promise看起来很复杂但是一旦你理解了JavaScript event loop如何工作,它就会变得更容易。

根据bitly documentation,您的代码可能看起来像承诺:

grab