从文档中我们可以阅读:
waitForAsync(fn: Function): (done: any) => any
将测试功能包装在异步测试区中。当该区域内的所有异步调用完成后,测试将自动完成。可用于包装注入调用。
我不明白,什么时候使用waitForAsync函数?什么之间的区别waitForAsyncVS(async或fakeAsync)?
由于 Angular 更新,我遇到了语言环境问题。
目前:
import localePl from '@angular/common/locales/pl';
registerLocaleData(localePl);
Run Code Online (Sandbox Code Playgroud)
它正在工作,但会导致错误:
app.module.ts 中的警告取决于@angular/common/locales/pl。CommonJS 或 AMD 依赖项可能会导致优化救助。
它在哪里工作?
LOCALE_ID价值pl-PLDatePipe在 HTML 中使用。(变量 | 日期) -variable等于new Date()测试方法:
1)
import localePl from '@angular/common/locales/global/pl'; registerLocaleData(localePl, 'pl-PL');
错误:
'无法读取管道的未定义属性'0'
在代码中:
variable | date
其中变量等于 new Date()
2)
如果我完全删除registerLocaleData
错误:
缺少语言环境“pl-PL”的语言环境数据。对于管道“DatePipe”
我正在使用ViewPager2与FragmentStateAdapter. 基本 3 片段 (ABC)。这意味着,您可以从 A 滚动到 B,从 B 滚动到 C
我想做的事?
从片段 B 开始子片段 D
(A-B-C)
|
D
从片段B开始片段D,当用户单击“后退箭头”(顶部栏)时,片段D将被销毁并且用户将回到B。(我不想使用activity)
我尝试了什么?
val ft: FragmentTransaction = requireActivity().supportFragmentManager.beginTransaction()
ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out)
ft.replace(android.R.id.content, DetailsFragment())
ft.addToBackStack(null)
ft.commit();
Run Code Online (Sandbox Code Playgroud)
对于上面的代码,我有两个问题。
编辑:将片段管理器传递给ViewPager2onCreate() 方法中的 main_activity
pagerAdapter = PagerAdapter(supportFragmentManager, lifecycle)
binding.mainViewPager.adapter = pagerAdapter
Run Code Online (Sandbox Code Playgroud)
PagerAdapter 是一个简单的类:
class PagerAdapter(fm: FragmentManager, lifecycle: Lifecycle) : FragmentStateAdapter(fm, lifecycle)
我有一个代码:
CompletableFuture<Integer> c1 = new CompletableFuture<Integer>()
.thenApply((data) -> data * 2);
c1.thenAccept(System.out::println);
c1.complete(20);
CompletableFuture<Integer> c2 = new CompletableFuture<>();
c2.thenApply(data -> data * 2)
.thenAccept(System.out::println);
c2.complete(20);
Run Code Online (Sandbox Code Playgroud)
输出:
20 40
题:
新的CompletableFuture < 整数 >()
我试图理解为什么这段代码不起作用
在组件中:
@PostConstruct
public void runAtStart(){
testStream();
}
@Transactional(readOnly = true)
public void testStream(){
try(Stream<Person> top10ByFirstName = personRepository.findTop10ByFirstName("Tom")){
top10ByFirstName.forEach(System.out::println);
}
}
Run Code Online (Sandbox Code Playgroud)
和存储库:
public interface PersonRepository extends JpaRepository<Person, Long> {
Stream<Person> findTop10ByFirstName(String firstName);
}
Run Code Online (Sandbox Code Playgroud)
我得到:
org.springframework.dao.InvalidDataAccessApiUsageException:您正在尝试在没有周围事务的情况下执行流查询方法,该事务保持连接打开,以便可以实际使用流。确保使用流的代码使用 @Transactional 或任何其他声明(只读)事务的方式。
我在QComboBox中有一些项目(由程序添加-这是很多添加的项目(大约1000个))
因此,我使组合框可编辑->然后,很容易找到正确的项目。(例如,如果我想找到名为“我的示例”的项目,则在组合框“ MY”中写入,并且得到以“ MY”开头的项目)
但是,当我在combobox中写其他东西时,combobox会添加此项。
我不想要,我只想:
并按按钮接受我的选择-然后如何检查我从程序添加的,未编写且用户未完成的项目中选择的项目?
我在考虑这个循环:
struct tmp {
int min;
int max;
tmp(int a, int b) :min(a), max(b){};
};
std::vector <tmp> data;
for (auto tmp_a : data){
if(tmp_a.min == 0){
//how to delete tmp_a item from data from there?
}
}
Run Code Online (Sandbox Code Playgroud)
当然我可以迭代这个循环,但我不认为这是最快的方法.(当然我可能是错的 - 然后纠正我)
问题: 如何删除范围循环中的项目?(使用最快的方法)
angular ×2
c++ ×2
java-8 ×2
android ×1
angular-i18n ×1
angular-test ×1
c++11 ×1
combobox ×1
java ×1
qt ×1
spring ×1
typescript ×1