我一直在这上面,我不知道为什么最后一次打印不会执行过去的对象值初始化。

await _client
      .get(Uri.parse(_url), headers: {"location": "Mars"})
      .then((result) => result.body)
      .then(json.decode)
      .then((json) => json.forEach((person) {
        print(person); // this gets executed and printed over and over
        Person newPerson;
        print('hehe lolz'); // this gets executed too
        newPerson.status = person['status'];
        print('hello'); // this never gets executed...

Person类只是一个包含所有字符串字段和构造函数的模型。
什么可能阻止最后一次打印的执行?

最佳答案

这是因为newperson为空,当您尝试调用newperson.status时,会出现nullpointer异常,下面的所有代码都不会执行。只需制作:

Person newPerson = Person();

关于asynchronous - 在await中为对象字段分配新值会阻止进一步的指示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55634688/

10-10 20:12