在 Node.js 中,我尝试循环某些项目,为每个项目完成一个异步过程,然后等待每个项目完成后再开始下一个项目。我一定做错了什么,因为 Promise.all() 没有等待任何异步进程完成!我的代码如下:
getChildLessons() {
return new Promise((resolve, reject) => {
Promise.all(
//nested for loop is needed to get all information in object / arrays
this.lessons.levels.map((item, i) => {
item.childlevels.map((childItem, iChild) => {
return ((i, iChild) => {
//return async process with Promise.resolve();
return this.horseman
.open(childItem.url)
.html()
.then((html) => {
//adding some information to an array
})
.then(() => {
return Promise.resolve();
}).catch((err) => {
reject(err);
});
})(i, iChild);
});
})
// Promise.all().then()
).then(() => {
resolve(this.lesson);
}) …Run Code Online (Sandbox Code Playgroud) 我对React和JSX相当新,但我的印象是你可以将JSX保存为几乎任何东西(var,const,let ......).
但是,当我将它保存为const并尝试渲染它时:
import React from 'react';
import ReactDOM from 'react-dom';
const Test = <div> hi </div>;
ReactDOM.render((
<div>
<Test />
</div>
), document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
React.createElement:type无效 - 期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:object.
当我用以下内容替换测试const时:
const Test = () => { return( <div> hi </div> ) };
Run Code Online (Sandbox Code Playgroud)
它没有问题.为什么我不能使用第一个版本?