Redian新闻
>
感觉反弹该歇一下了.
avatar
感觉反弹该歇一下了.# Stock
r*9
1
是这样,由于公司后端太傻比,前端需要循环一个数组,数组中每个对象拿出来call一
次api。大家都知道for循环当中执行异步就是个灾难,但是es6有generator好像能解决
这个问题。然而由于我要一个一个去send,如果我外围包一个for循环去执行.next(),
他最后make api的顺序是完全错误的。哎。不知道哪位大神遇到过这种情况。
avatar
w*s
2
谨慎的扔了一瓶酱油 出来看看.
avatar
t*n
3
LC第692题
avatar
b*e
4
hehe 油价下来,fed日子好过点. hiahia

【在 w******s 的大作中提到】
: 谨慎的扔了一瓶酱油 出来看看.
avatar
A*5
5
你的前端是纯javascript,还是有其他framework, 有自己同步异步http transaction
的module?
avatar
m*e
6
like tsunami,
if you runs quickly
you live
otherwise, you die
avatar
l*u
7
递归啊, onSuccess里面发起下一个call,刷了那么多dp题了怎么还老是想到for呢
avatar
r*9
8

只有递归了 但是我们很多chained api call 几个api之间的调用很复杂 这将是一个灾
难………

【在 l****u 的大作中提到】
: 递归啊, onSuccess里面发起下一个call,刷了那么多dp题了怎么还老是想到for呢
avatar
r*9
9

transaction
纯客户端 后端的人太傻逼 本来直接我传一个数组给他就完了 结果他们有各种限制

【在 A*******5 的大作中提到】
: 你的前端是纯javascript,还是有其他framework, 有自己同步异步http transaction
: 的module?

avatar
l*u
10
http call不应该都是stateless的么,如果几个call直接有dependency本来就是设计
api的时候有问题了

【在 r******9 的大作中提到】
:
: transaction
: 纯客户端 后端的人太傻逼 本来直接我传一个数组给他就完了 结果他们有各种限制

avatar
A*5
11

我大概明白了,递归是callback里call自己下一个吧。你那后端的api复不复杂?
这个还是应该后端改啊,他现在的API肯定有verification and implement的modules,
为什么不拆开呢?
前端这样很危险,以后有了http transition同步异步的bug,连debugger都不好用了。
因为一旦有timeout在里面就不行了,我以前就被assign过这么个bug,有200多个
action batch,一个batch10-40个action,想想多少http transaction。。。bug的描
述是,多层表,有时子表打开下面没内容,只是有时, 要求我在不连客户数据库的情况
下判断在新的version里能不能reproduce。根本不能直接debug,最后是用反证法,搞
了一个星期才确定,不能复制!其实QA 复制个数据库就半个小时左右,然后连上新版
本直接测就可以,可人家不想。

【在 l****u 的大作中提到】
: http call不应该都是stateless的么,如果几个call直接有dependency本来就是设计
: api的时候有问题了

avatar
P*o
12
用promise不就完了
[在 ry880809 (ry880809) 的大作中提到:]
:是这样,由于公司后端太傻比,前端需要循环一个数组,数组中每个对象拿出来call
一次api。大家都知道for循环当中执行异步就是个灾难,但是es6有generator好像能解
决这个问题。然而由于我要一个一个去send,如果我外围包一个for循环去执行.next()
, 他最后make api的顺序是完全错误的。哎。不知道哪位大神遇到过这种情况。
avatar
l*u
13
恩 就是callback里面重复call自己,传入不同的参数,然后再promise里面判断是不是
该停止递归返回结果了
后端api挺简单的,之所以这么弄是api 在服务器太慢了,一次性发过去run太久,得等
好几分钟,nginx超时了。。。所以采用这种work around分解成多个http call,每个
call的时间就在超时范围内了。。

【在 A*******5 的大作中提到】
:
: 我大概明白了,递归是callback里call自己下一个吧。你那后端的api复不复杂?
: 这个还是应该后端改啊,他现在的API肯定有verification and implement的modules,
: 为什么不拆开呢?
: 前端这样很危险,以后有了http transition同步异步的bug,连debugger都不好用了。
: 因为一旦有timeout在里面就不行了,我以前就被assign过这么个bug,有200多个
: action batch,一个batch10-40个action,想想多少http transaction。。。bug的描
: 述是,多层表,有时子表打开下面没内容,只是有时, 要求我在不连客户数据库的情况
: 下判断在新的version里能不能reproduce。根本不能直接debug,最后是用反证法,搞
: 了一个星期才确定,不能复制!其实QA 复制个数据库就半个小时左右,然后连上新版

avatar
r*9
14

就是后端太傻比的原因了。

【在 l****u 的大作中提到】
: http call不应该都是stateless的么,如果几个call直接有dependency本来就是设计
: api的时候有问题了

avatar
h*n
15
挺stupid的做法

【在 l****u 的大作中提到】
: 恩 就是callback里面重复call自己,传入不同的参数,然后再promise里面判断是不是
: 该停止递归返回结果了
: 后端api挺简单的,之所以这么弄是api 在服务器太慢了,一次性发过去run太久,得等
: 好几分钟,nginx超时了。。。所以采用这种work around分解成多个http call,每个
: call的时间就在超时范围内了。。

avatar
r*9
16

其实递归不行。我们会有很多很多数据 没人能保证递归会不会爆炸。。。。现在采取
的办法是:
function sendApi(obj){api((obj)=>{sucess:{
这里还有其他两个有dependency的api call。。。
handlesucess()
}
handleError:(){
这里也有两三个apicall。。。。
}
})}
function handleSuccess(){sendNextApi()}
function sendNextApi(){sendApi(array[index+1])}
彻底无语。。。。

【在 l****u 的大作中提到】
: 递归啊, onSuccess里面发起下一个call,刷了那么多dp题了怎么还老是想到for呢
avatar
l*u
17
这不就是递归啊,不过多套了几个别的函数
不过为啥handleError里面还有几个api call,出错了还不直接炸掉,还继续call个啥呢

【在 r******9 的大作中提到】
:
: 其实递归不行。我们会有很多很多数据 没人能保证递归会不会爆炸。。。。现在采取
: 的办法是:
: function sendApi(obj){api((obj)=>{sucess:{
: 这里还有其他两个有dependency的api call。。。
: handlesucess()
: }
: handleError:(){
: 这里也有两三个apicall。。。。
: }

avatar
a*i
18
onsuccess递归的话不是顺序同步call了吗?
我觉得建个 id -> result的map,然后还是异步call
success了放进map里

【在 r******9 的大作中提到】
:
: 其实递归不行。我们会有很多很多数据 没人能保证递归会不会爆炸。。。。现在采取
: 的办法是:
: function sendApi(obj){api((obj)=>{sucess:{
: 这里还有其他两个有dependency的api call。。。
: handlesucess()
: }
: handleError:(){
: 这里也有两三个apicall。。。。
: }

avatar
A*5
19
你们后端真的不能沟通, 还是后端没有办法改?连我们公司遇到这种情况也不会冒这
种险。是不是deadline快到了,没时间先弄个凑活着。
avatar
r*9
20

啥呢
因为要出错了也要继续call下一个 生成employee的api。。。

【在 l****u 的大作中提到】
: 这不就是递归啊,不过多套了几个别的函数
: 不过为啥handleError里面还有几个api call,出错了还不直接炸掉,还继续call个啥呢

avatar
r*9
21

是的吧。等上一个回来我再call下一个。顺序上应该对的。但是我们没直接递归

【在 a****i 的大作中提到】
: onsuccess递归的话不是顺序同步call了吗?
: 我觉得建个 id -> result的map,然后还是异步call
: success了放进map里

avatar
r*9
22

这不是冒险 在咱这是常态。前端干起后端的活。

【在 A*******5 的大作中提到】
: 你们后端真的不能沟通, 还是后端没有办法改?连我们公司遇到这种情况也不会冒这
: 种险。是不是deadline快到了,没时间先弄个凑活着。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。