我在学习node.js时一直困扰着两个星期的问题是如何使用node进行同步编程。我发现,无论我如何尝试按顺序进行操作,我总是以嵌套的诺言告终。我发现存在诸如Q之类的模块,以帮助在可维护性方面实现承诺链。
我不明白,在做研究Promise.all()
,Promise.resolve()
和Promise.reject()
。Promise.reject
从名称上来说,它几乎可以自我解释,但是在编写应用程序时,我很困惑如何在函数或对象中包括这些功能而不破坏应用程序的行为。
当来自Java或C#之类的编程语言时,node.js肯定有一个学习曲线。仍然存在的问题是,promise链在node.js中是否正常(最佳实践)。
例:
driver.get('https://website.com/login').then(function () {
loginPage.login('company.admin', 'password').then(function () {
var employeePage = new EmployeePage(driver.getDriver());
employeePage.clickAddEmployee().then(function() {
setTimeout(function() {
var addEmployeeForm = new AddEmployeeForm(driver.getDriver());
addEmployeeForm.insertUserName(employee.username).then(function() {
addEmployeeForm.insertFirstName(employee.firstName).then(function() {
addEmployeeForm.insertLastName(employee.lastName).then(function() {
addEmployeeForm.clickCreateEmployee().then(function() {
employeePage.searchEmployee(employee);
});
});
});
});
}, 750);
});
});
});