gpt4 book ai didi

javascript - 为什么 Node.JS 中这个函数没有首先加载?

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:21 24 4
gpt4 key购买 nike

我正在 Node.JS 中编写一个 Twitter 机器人,但我有一个使用名为“scrapejs”的 npm 库的函数,它从 yahoo Finance 获取数据并且工作得很好,问题是虽然我在 botton 的代码首先运行后加载了该函数,但不知道为什么。我之前已经让机器人的推文部分正常工作,但如果我从网络抓取中获取数据,我就无法在推文后运行该部分。

代码如下:

console.log("The Bot Is Starting To Work.");

var sp = require('scrapejs').init({
cc: 2, // up to 2 concurrent requests
delay: 5 * 1 // delay .05 seconds before each request
});

sp.load('https://ca.finance.yahoo.com/q?s=CADUSD=X')
.then(function ($, res) {
//$.q("//h3[@class='r']/a").forEach(function(node){ //Adding the HTML Tags to filter the data
console.log("Scraping The Web...");
$.q("//span[@class='time_rtq_ticker']/span").forEach(function (node) {
var res = {
title: node.textContent //Always returns { title: 'NUMBER'} (When Working)
}
console.log(res);
return res;
})
})
.fail(function (err) {
console.log(err);
})


console.log("Why does this part load first??"); // This part comes first before the function above

输出如下:/image/zVpTo.jpg

最佳答案

node.js 异步工作,这意味着代码中的行开始一个接一个,每一行在结束时结束 - 第三行不会等待第二行完成后再开始。

由于你的第二个函数很重,所以需要一些时间来运行,比简单的 console.log() 多得多,最后一行将首先结束

关于javascript - 为什么 Node.JS 中这个函数没有首先加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35246494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com