gpt4 book ai didi

javascript - 不是具有异步功能的构造函数

转载 作者:行者123 更新时间:2023-11-29 10:28:46 24 4
gpt4 key购买 nike

我想在 JavaScript 中创建一个构造函数,这个构造函数应该是异步的,因为我正在使用 Phantom JS 模块来抓取数据,所以这就是为什么我必须使用异步函数通过 Phantom JS 和 Node 抓取数据JS。

下面是我的代码,

const phantom = require('phantom');
async function InitScrap() {

var MAIN_URL = "https://www.google.com/",
//Phantom JS Variables
instance = await phantom.create(),
page = await instance.createPage();


// Load the Basic Page First
this.loadPage = async function() {
console.log("Loading Please wait...");
var status = await page.open(MAIN_URL);
if (status == "success") {
page.render("new.png");
console.log("Site has been loaded");
}
}

}

var s = new InitScrap();
s.loadPage()

// module.exports = InitScrap();

But when I run this code it says, InitScrap() is not a constructor, am I missing something ?

最佳答案

构造函数是返回函数中定义类型的对象的函数,例如您引用的 MDN 中的“Person”类:

function Person(name) {
this.name = name;
this.greeting = function() {
alert('Hi! I\'m ' + this.name + '.');
};
}

当与 new 关键字一起使用时,它返回一个带有名称和问候功能的对象。

当您使用 async 关键字时,您可以在函数中使用 await Promise,但它也会将该函数转换为一个 promise 生成器,这意味着它将返回一个 Promise,而不是一个对象,这就是为什么它不能是构造函数的原因。

关于javascript - 不是具有异步功能的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51694221/

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